【iOS】UIWebViewで表示できる意外なファイル形式
先日、iPhoneのSafariでダウンロードできるファイル形式という記事を書いたのですが、こんなコメントを頂きました。
Safariが対応しているわけではなくiOSレベルでサポートされてます。他のアプリでも同様に扱えます。
これを見て、どうやって実装するんだろう?と思ったので実装方法を調べたところ、UIWebViewを使って表示することが分かりました。
UIWebViewで表示できるファイル形式
表示できるファイル形式は結構前の記事ですがここに書かれていました。
- Excel (.xls)
- Keynote (.key.zip)
- Numbers (.numbers.zip)
- Pages (.pages.zip)
- PDF (.pdf)
- Powerpoint (.ppt)
- Word (.doc)
- Rich Text Format (.rtf)
- Rich Text Format Directory (.rtfd.zip)
- Keynote '09 (.key)
- Numbers '09 (.numbers)
- Pages '09 (.pages)
実装する
試しに実装してみました。まずは画面を実装します。UIWebView、UITextField、UIButtonを配置します。
UIWebViewのscalesPageToFitをYESにすると拡大縮小することができるようになります。
ボタンをクリックした際の処理は以下の通りです。UITextFieldに入力したURLをUIWebViewでロードしているだけです。
- (IBAction)click:(id)sender { NSURL *url = [NSURL URLWithString:textField.text]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [webView loadRequest:request]; }
シミュレータで確認してみましたが問題なく表示されます。
まとめ
UIWebViewにこのような機能があるのを知らなかったので勉強になりました。
最新のOSではどうなっているのかはまだ分かりませんが、上記以外にOfficeの2007形式も表示できることは確認しています。
- Word 2007(.docx)
- Excel 2007(.xlsx)
- Powerpoint 2007(.pptx)